﻿var ListaPreciosCompraesSeleccionada = 1;
var TasaIvaCotizciones = 16;

function initModuloCompraes() {

    AutocompletarClientesCompraes();
//    if ($("#CantidadConceptosCompra1").val() == "0")
//        nuevoConceptoCompra();
    $("#DivTotalesCompra input").attr("readonly", "readonly");
    $("#DescuentoCompra").attr("readonly", "");
    $("#FechaVencimientoCompra").attr("readonly", "readonly").datepicker({ minDate: +1,
        maxDate: "+6M",
        numberOfMonths: 2,
        showButtonPanel: true
    });
   // InicializarUI();
}


function InitCompraesGrid() {
    $("#GridTableCompraes").flexigrid
			(
			{
			    url: '/ModuloCompras.aspx?listado=true&status=1&',
			    dataType: 'json',
			    colModel: [
			    //id,clave,descripcion,idmarca,idcategoria,idfamilia,precio1,precio2,precio3,especifiaciones
				{display: 'No. Cot.', name: 'id', width: 40, sortable: true, align: 'center' },
                //{ display: 'No. Factura', name: 'DiasCredito', width: 50, sortable: true, align: 'center' },
                { display: 'No. Ped.', name: 'NoPedido', width: 40, sortable: true, align: 'center', hide: true },
                { display: 'No. Rem.', name: 'NoRemision', width: 40, sortable: true, align: 'center', hide: true },
                { display: 'No. Sal.', name: 'NoSalida', width: 40, sortable: true, align: 'center', hide: true },
                { display: 'Fecha', name: 'fechaCreacion', width: 55, sortable: true, align: 'center' },
                { display: 'F. Ped.', name: 'FechaPedido', width: 55, sortable: true, align: 'center', hide: true },
                { display: 'F. Rem.', name: 'FechaRemision', width: 55, sortable: true, align: 'center', hide: true },
                { display: 'F. Sal.', name: 'FechaSalida', width: 55, sortable: true, align: 'center', hide: true },
                { display: 'Status', name: 'status', width: 95, sortable: true, align: 'left' },
				{ display: 'Razon social', name: 'nombreCliente', width: 310, sortable: true, align: 'left' },
                { display: 'Nombre Comercial', name: 'nombrecomercialcliente', width: 335, sortable: true, align: 'left', hide: true },
                { display: 'Total', name: 'total', width: 70, sortable: true, align: 'right' },
                { display: 'Pagado', name: 'saldoPagado', width: 70, sortable: true, align: 'right' },
				{ display: 'Pendiente', name: 'saldoPendiente', width: 70, sortable: true, align: 'right' },
                { display: 'Dias Credito', name: 'DiasCredito', width: 60, sortable: true, align: 'center' },
                { display: 'Dias Vencidos', name: 'DiasVencidos', width: 60, sortable: true, align: 'center' }
				],
			    searchitems: [
				{ display: 'No. Compra', name: 'id' },
				{ display: 'Razon Social', name: 'NombreCliente', isdefault: true },
                { display: 'Nombre Comercial', name: 'NombreComercialCliente' },
                { display: 'Total', name: 'Total' }
				],
			    sortname: "id",
			    sortorder: "desc",
			    usepager: true,
			    title: 'Compras',
			    useRp: true,
			    width: 1020,
			    height: GridTotalHeight,
			    pagestat: 'Mostrando de {from} a {to} de un total de {total} registros',
			    pagetext: 'Pagina',
			    outof: 'de',
			    findtext: "Buscar <span style='font-size:8px;'>(presione Enter para realizar la busqueda)</span>",
			    procmsg: 'Procesando, Espere por favor ...',
			    nomsg: 'No hay registros',
			    resizable: false,
			    blockOpacity: 0.75,
			    onSuccess: function () { AddGridTotals('GridTableCompraes'); },
			    OnDoubleClick: function (id) { CargarPaginaCompraes('/ModuloCompras.aspx?idCompra='+id+'&detalle=true'); }
			}
			);

}


function InitReporteCompras() {
    var fInicial = $("#RepComFechaInicial").val();
    var fFinal = $("#RepComFechaFinal").val();
    $("#TableReporteCompras").flexigrid
			(
			{
			    url: '/ModuloCompras.aspx?listado=true&RepCompras=true&fechaInicial=' + fInicial + '&fechaFinal=' + fFinal + '&',
			    dataType: 'json',
			    colModel: [
			    //id,clave,descripcion,idmarca,idcategoria,idfamilia,precio1,precio2,precio3,especifiaciones
				{display: 'No. Cot.', name: 'id', width: 40, sortable: true, align: 'center' },
                //{ display: 'No. Factura', name: 'DiasCredito', width: 50, sortable: true, align: 'center' },
                { display: 'No. Ped.', name: 'NoPedido', width: 40, sortable: true, align: 'center', hide: true },
                { display: 'No. Rem.', name: 'NoRemision', width: 40, sortable: true, align: 'center', hide: true },
                { display: 'No. Sal.', name: 'NoSalida', width: 40, sortable: true, align: 'center', hide: true },
                { display: 'Fecha', name: 'fechaCreacion', width: 55, sortable: true, align: 'center' },
                { display: 'F. Ped.', name: 'FechaPedido', width: 55, sortable: true, align: 'center', hide: true },
                { display: 'F. Rem.', name: 'FechaRemision', width: 55, sortable: true, align: 'center', hide: true },
                { display: 'F. Sal.', name: 'FechaSalida', width: 55, sortable: true, align: 'center', hide: true },
                { display: 'Status', name: 'status', width: 95, sortable: true, align: 'left' },
				{ display: 'Razon social', name: 'nombreCliente', width: 310, sortable: true, align: 'left' },
                { display: 'Nombre Comercial', name: 'nombrecomercialcliente', width: 335, sortable: true, align: 'left', hide: true },
                { display: 'Total', name: 'total', width: 70, sortable: true, align: 'right' },
                { display: 'Pagado', name: 'saldoPagado', width: 70, sortable: true, align: 'right' },
				{ display: 'Pendiente', name: 'saldoPendiente', width: 70, sortable: true, align: 'right' },
                { display: 'Dias Credito', name: 'DiasCredito', width: 60, sortable: true, align: 'center' },
                { display: 'Dias Vencidos', name: 'DiasVencidos', width: 60, sortable: true, align: 'center' }
				],
			    searchitems: [
				{ display: 'No. Compra', name: 'id' },
				{ display: 'Razon Social', name: 'NombreCliente', isdefault: true },
                { display: 'Nombre Comercial', name: 'NombreComercialCliente' },
                { display: 'Total', name: 'Total' }
				],
			    sortname: "id",
			    sortorder: "desc",
			    usepager: true,
			    title: 'Reporte de Compras',
			    useRp: true,
			    width: 1020,
			    height: GridTotalHeight,
			    pagestat: 'Mostrando de {from} a {to} de un total de {total} registros',
			    pagetext: 'Pagina',
			    outof: 'de',
			    findtext: "Buscar <span style='font-size:8px;'>(presione Enter para realizar la busqueda)</span>",
			    procmsg: 'Procesando, Espere por favor ...',
			    nomsg: 'No hay registros',
			    resizable: false,
			    blockOpacity: 0.75,
			    onSuccess: function () { AddGridTotals('TableReporteCompras'); },
			    OnDoubleClick: function (id) { CargarPaginaCompraes('/ModuloCompras.aspx?idCompra=' + id + '&detalle=true'); }
			}
			);
}


function AutocompletarClientesCompraes() {

    $("#NombreClienteCompra").autocomplete(ListaProveedores, {
        minChars: 0,
        width: 250,
        matchContains: "word",

        autoFill: false,
        formatItem: function (row, i, max) {
            return i + "/" + max + ": \"" + row.RazonSocial + " - \"" + row.NombreComercial + "\" [" + row.RFC + "]";
        },
        formatMatch: function (row, i, max) {
            return row.RazonSocial;
        },
        formatResult: function (row) {
            return row.RazonSocial;
        }
    }).result(function (event, item) {
        with (item) {
            if (id != 0) {
                //alert(id);
                LoadListaMateriasPrimas(id);
                $("#idClienteCompra").val(id);
                $("#NombreComercialClienteCompra").val(NombreComercial).attr("readonly", "true");
                $('#RFCClienteCompra').val(RFC).attr("readonly", "true");
                with (DireccionFacturacion) {
                    $('#F_CalleCompra').val(Calle).attr("readonly", "true");
                    $('#F_NumeroInteriorCompra').val(NumeroInterior).attr("readonly", "true");
                    $('#F_NumeroExteriorCompra').val(NumeroExterior).attr("readonly", "true");
                    $('#F_ColoniaCompra').val(Colonia).attr("readonly", "true");
                    $('#F_MunicipioCompra').val(Municipio).attr("readonly", "true");
                    $('#F_CiudadCompra').val(Ciudad).attr("readonly", "true");
                    $('#F_EstadoCompra').val(Estado).attr("readonly", "true");
                    $('#F_CPCompra').val(CP).attr("readonly", "true");
                }
                with (DireccionEnvio) {
//                    $('#CalleCompra').val(Calle);
//                    $('#NumeroInteriorCompra').val(NumeroInterior);
//                    $('#NumeroExteriorCompra').val(NumeroExterior);
//                    $('#ColoniaCompra').val(Colonia);
//                    $('#MunicipioCompra').val(Municipio);
//                    $('#CiudadCompra').val(Ciudad);
//                    $('#EstadoCompra').val(Estado);
//                    $('#CPCompra').val(CP);
                }
                var ObjConPago = TipoCondicionesPago(idCondicionesPago);
                $("#idCondicionesPagoCompra").val(idCondicionesPago);
                $("#idListaPreciosCompra").val(idListaPrecios);
                $('#CondicionesPagoCompra').val(ObjConPago.NombreCondicion).attr("readonly", "true");
                //                $("#listaPreciosClienteCompra input:radio").attr("disabled", "");
                //                $("#listaPreciosClienteCompra input:radio").button("destroy");
                //                $("#listaPreciosClienteCompra input:radio[value='" + idListaPrecios + "']").click();
                //                $("#listaPreciosClienteCompra input:radio").attr("readonly", "true");
                TipoCondicionesPago(1);
                CalcularTotalesCompra(TasaIvaCotizciones);
                LoadListaMateriasPrimas(id);

                $("#ContenedorConceptosCompra").html("");
                $("#CantidadConceptosCompra1").val("0");
                setTimeout( function () {nuevoConceptoCompra(); },5000);

            }
        }

    }).setOptions({ data: ListaProveedores });

}

function TipoCondicionesPago(idTipo) {

    for (x = 0; x < ListaCondicionesPago.length; x++)
        if (ListaCondicionesPago[x].id == idTipo)
            return ListaCondicionesPago[x];
  
}



function CopiarDatosCompra(desde, hacia) {
    $('#' + hacia + 'CalleCompra').val($('#' + desde + 'CalleCompra').val());
    $('#' + hacia + 'NumeroInteriorCompra').val($('#' + desde + 'NumeroInteriorCompra').val());
    $('#' + hacia + 'NumeroExteriorCompra').val($('#' + desde + 'NumeroExteriorCompra').val());
    $('#' + hacia + 'ColoniaCompra').val($('#' + desde + 'ColoniaCompra').val());
    $('#' + hacia + 'MunicipioCompra').val($('#' + desde + 'MunicipioCompra').val());
    $('#' + hacia + 'CiudadCompra').val($('#' + desde + 'CiudadCompra').val());
    $('#' + hacia + 'EstadoCompra').val($('#' + desde + 'EstadoCompra').val());
    $('#' + hacia + 'CPCompra').val($('#' + desde + 'CPCompra').val());
}

function nuevoConceptoCompra() {
    var noConceptos = parseInt($('#cantidadConceptosCompra').val());
    noConceptos++;
    var plantilla = $('#ConceptoTemplateCompra').html();
    plantilla = plantilla.replace(/IDCON/gi, noConceptos);
    $("#ContenedorConceptosCompra").append(plantilla);
    $("#ConceptoDivCompra" + noConceptos).show();
    //$("#ConceptoDiv" + noConceptos +" input").attr("readonly","readonly");
    $('#cantidadConceptosCompra').val(noConceptos);
    ActivarAutocompletadoCompraConcepto(noConceptos);
    return noConceptos;
}

function quitarConceptoCompra(idConcepto) {
    //$('#idProductoConceptoCompra' + idConcepto).val('0');
    $('#cantidadConceptoCompra' + idConcepto).val('0');
    $('#ConceptoEliminadoCompra' + idConcepto).val('true');
    $("#ConceptoDivCompra" + idConcepto).hide();
    CalcularTotalesCompra(TasaIvaCotizciones);
}

function cargarConcaptoCompra(id,cantidad,clave,categoria,linea,marca,descripcion,precio,idProducto,precio1,precio2,precio3) {
    var idConcepto = nuevoConceptoCompra();
    $("#ConceptoCompraId" + idConcepto).val(id);
    $("#idProductoConceptoCompra" + idConcepto).val(idProducto);
    $("#cantidadConceptoCompra" + idConcepto).val(cantidad);
    //alert(idConcepto);
    $("#claveConceptoCompra" + idConcepto).val(clave);
    $("#categoriaConceptoCompra" + idConcepto).val(categoria);
    $("#lineaConceptoCompra" + idConcepto).val(linea);
    $("#marcaConceptoCompra" + idConcepto).val(marca);
    $("#descripcionConceptoCompra" + idConcepto).val(descripcion);
    $("#precioConceptoCompra" + idConcepto).val(precio);
    $("#precio1ConceptoCompra" + idConcepto).val(precio1);
    $("#precio2ConceptoCompra" + idConcepto).val(precio2);
    $("#precio3ConceptoCompra" + idConcepto).val(precio3); 
    $("#importeConceptoCompra" + idConcepto).val(formatCurrency(CalcularImporteCompra(idConcepto)));

}

function ActivarAutocompletadoCompraConcepto(idContenedorClave) {

    //alert(ListaMateriasPrimas);
    $("#claveConceptoCompra" + idContenedorClave).autocomplete(ListaMateriasPrimas, {
        minChars: 0,
        width: 450,
        matchContains: "word",
        autoFill: false,
        panelPosition: "top",
        scrollHeight: 400,
        formatItem: function (row, i, max) {
            return i + "/" + max + ": \"<strong>" + row.Clave + "</strong>\" - " + row.Descripcion + "  [ $" + row.UltimoPrecioCompra + " ]";
        },
        formatMatch: function (row, i, max) {
            return row.Clave + " " + row.Descripcion;
        },
        formatResult: function (row) {
            return row.Clave;
        }
    }).result(function (event, item) {
        with (item) {
            if (id != 0) {
                $("#categoriaConceptoCompra" + idContenedorClave).val(Categoria);
                $("#lineaConceptoCompra" + idContenedorClave).val(Linea);
                $("#marcaConceptoCompra" + idContenedorClave).val(Marca);
                $("#descripcionConceptoCompra" + idContenedorClave).val(Descripcion);
                $("#precio1ConceptoCompra" + idContenedorClave).val(UltimoPrecioCompra);
                $("#precio2ConceptoCompra" + idContenedorClave).val(UltimoPrecioCompra);
                $("#precio3ConceptoCompra" + idContenedorClave).val(UltimoPrecioCompra);
                $("#precioConceptoCompra" + idContenedorClave).val(UltimoPrecioCompra);
                $("#idProductoConceptoCompra" + idContenedorClave).val(id);
                if ($("#cantidadConceptoCompra" + idContenedorClave).val() == "0")
                    $("#cantidadConceptoCompra" + idContenedorClave).val(1);
                $("#importeConceptoCompra" + idContenedorClave).val(formatCurrency(CalcularImporteCompra(idContenedorClave)));
                CalcularTotalesCompra(TasaIvaCotizciones);
            }
        }
    });
}

function CalcularImporteCompra(idConcepto) {
    var precio = parseFloat($("#precioConceptoCompra" + idConcepto).val().toString().replace('$', '').replace(',', ''));
    var cantidad = parseFloat($("#cantidadConceptoCompra" + idConcepto).val());
    //alert(precio * cantidad);
    return (precio * cantidad);
    
}

function CalcularTotalesCompra(TasaIVA) {
    var subtotal = new Number(0);
    var ivaLocal = new Number(0);
    var porcenDescuento = Number(0);
    var totalDescuento = Number(0);
    for (x = 1; x <= parseInt($('#cantidadConceptosCompra').val()); x++) {
        var importe = CalcularImporteCompra(x);
        //$("#precioConcepto" + x).val(formatCurrency($("#precio" + ListaPreciosCotizacionesSeleccionada + "ConceptoCotizacion" + x).val()));
        $("#importeConceptoCompra" + x).val(formatCurrency(importe));
        subtotal += importe;
    }

    //    if ($("#DescuentoCotizacion").val().toString().indexOf("%") >= 0) {
    var porcentaje = new String($("#DescuentoCompra").val());
    porcentaje = new Number(porcentaje.replace(/%/g, ""));
    //alert(porcentaje)
    if (!isNaN(porcentaje))
        descuentoLocal = subtotal * (porcentaje / 100);
    else
        descuentoLocal = 0;
    //    }
    //    else {
    //        //alert($("#DescuentoCotizacion").val().toString().indexOf("%"));
    //        descuentoLocal = new Number($("#DescuentoCotizacion").val());
    //    }

    ivaLocal = (subtotal - descuentoLocal) * (TasaIVA / 100);
    $('#SubTotalCompra').val(formatCurrency(subtotal));

    if ($("#incluyeIVACompra").attr("checked")) {
        $('#TotalCompra').val(formatCurrency(ivaLocal + subtotal - descuentoLocal))
        $('#IVACompra').val(formatCurrency(ivaLocal));
    }
    else {
        $('#IVACompra').val(formatCurrency(0));
        $('#TotalCompra').val(formatCurrency(subtotal - descuentoLocal));
    }

//    var descuentoLocal = new Number($("#DescuentoCompra").val());
//    for (x = 1; x <= parseInt($('#cantidadConceptosCompra').val()); x++) {
//        var importe = CalcularImporteCompra(x);
//        //$("#precioConceptoCompra" + x).val(formatCurrency($("#precio" + ListaPreciosCompraesSeleccionada + "ConceptoCompra" + x).val()));
//        $("#importeConceptoCompra" + x).val(formatCurrency(importe));
//         subtotal += importe;
//     }
//    ivaLocal = (subtotal-descuentoLocal) * (TasaIVA / 100);
//    $('#SubTotalCompra').val(formatCurrency(subtotal));
//    $('#IVACompra').val(formatCurrency(ivaLocal));
//    $('#TotalCompra').val(formatCurrency(ivaLocal+subtotal-descuentoLocal));
}

function showRequestCompra() {
    NombreClienteCotizado = $("#NombreProveedorCompra").val();
    TotalCotizadoCompra = $("#TotalCompra").val();
    CrearLoaderDiv('#DivCompras', 'DivComprasLoader');
}

function sucessCompra() {
    MostrarAlerta("Se ha dado de alta correctamente la Compra para el Proveedor <b>" + NombreProveedorCotizado + "</b> por un total de <b>" + TotalCotizadoCompra + "</b>");
    NombreProveedorCotizado = "";
    TotalCotizadoCompra = "";
}

function ImprimirDocumentoCompras(NumeroDocumento, tipoDocumento) {
    $("#iframeLoader").attr("src", "");
    $("#iframeLoader").attr("src","/ModuloCompras.aspx?idCompra="+NumeroDocumento+"&impresion=true&idStatus="+tipoDocumento);
}

function EnviarDocumentoEmailCompra(NumeroDocumento, mensajePersonal, listaMails) {
    $("#iframeLoader").attr("src", "");
    $("#iframeLoader").attr("src", "/ModuloCompras.aspx?idCompra=" + NumeroDocumento + "&email=true&destinatarios=" + listaMails + "&mensajePersonal=" + mensajePersonal);
}

function ConfirmarEnvioEmailCompra() {

    var CamposMails = $("#MailsProveedor").html();
    $("#DivListaMailsEnvioCompra").html(CamposMails);
    $("#MailsProveedor").html("");
    $(".ui-dialog").remove();
    $("#dialog-form-email-compra").dialog({
        autoOpen: true,
        //        height: auto,
        width: 420,

        modal: true,
        resizable: false,
        buttons: {
            "Enviar Solicitud de Cotizacion": function () {
                var lista = "";
                $.each($("[rel='envioscompra']"), function (i, val) {
                    if (val.checked == true) {
                        if (lista != "")
                            lista += "|";
                        lista += val.value;
                    }
                });
                //alert(lista);
                EnviarDocumentoEmailCompra($('#idCompraMostrada').val(), $('#mensajeEmailcompra').val(), lista);
                $("[rel='envioscompra']").remove();
                $("#MailsProveedor").html(CamposMails);
                $(this).dialog("close");


            },
            "Cancelar": function () {
                $("[rel='envioscompra']").remove();
                $("#MailsProveedor").html(CamposMails);
                $(this).dialog("close");
            }
        },
        close: function () {
            $("[rel='envioscompra']").remove();
            $("#MailsProveedor").html(CamposMails);
            allFields.val("").removeClass("ui-state-error");
        }
    });

}

function ConfirmarPagoCompra() {
    $("#DivPagoACompra").each(function () { $(this).remove(); });
    var template = $("#TemplatePagoCompra").html();
    template = template.replace(/Template/gi, "");
    $("#DivCompras").append(template);
    var fechaActual = new Date();
    var fechaActual2 = fechaActual.format("dd/mm/yyyy");
    $("#FechaPagoCompra").val(fechaActual2).attr("readonly", "readonly").datepicker({ minDate: -30,
        maxDate: "+1M",
        numberOfMonths: 2,
        showButtonPanel: true
    });
    $('#MontoPagoCompra').val($("#totalCompraActualDeuda").val());
    LoadCuentasBancarias();
    $("#CuentaBancariaCompra").addItemsCuentas(ListaCuentasBancarias);



    $("#DivPagoACompra").dialog({
        autoOpen: true,
        height: 370,
        width: 300,
        modal: true,
        resizable: false,
        buttons: {
            "Pago a Compra": function () {
                var idCuentaPago = $('#CuentaBancariaCompra option:selected').val();
                var noDocumentoPago = $('#NoDocumentoCompra').val();
                var fechaPago = $('#FechaPagoCompra').val();
                var totalMonto = $('#MontoPagoCompra').val();
                var idCompranPago = $('#idCompraMostrada').val();
                var pagoCheque = $("#enChequeCompra").attr("checked");
                var pagoAplicar = $("#AplicarPagoCompra").attr("checked");
                var urlPago = "/ModuloCompras.aspx?RealizarPagoCompra=true&idCompra=" + idCompranPago + "&idCuentaBancaria=" + idCuentaPago + "&TotalPago=" + totalMonto + "&fechaPago=" + fechaPago + "&NoDocumento=" + noDocumentoPago+"&esCheque="+pagoCheque+"&aplicarPago="+pagoAplicar;
                $('#loaderPagosCompras').load(urlPago, function (response, status, xhr) {
                    MostrarAlerta(response);
                    CargarPaginaCompraes('/ModuloCompras.aspx?idCompra=' + idCompranPago + '&detalle=true');
                });
                $(this).dialog("close");
            },
            "Cancelar": function () {
                $(this).dialog("close");
            }
        },
        close: function () {
            $(this).dialog("destroy");
        }
    });
}


function ConfirmarBorrarCompra() {

    var idregistro = $('#idCompraMostrada').val();
    MostrarConfirmacion("De verdad quiere eliminar la Compra Seleccionada?", "Eliminar Cotizacion", function () { CargarPaginaCompraes("/moduloCompras.aspx?eliminar=true&idCompra=" + idregistro); });

}


function imprimirRCompras() {
    $("#iframeLoader").attr("src", "");
    var contenido = $("#TableReporteCompras").html();
    var fechaInicial = $("#RepComFechaInicial").val();
    var fechaFinal = $("#RepComFechaFinal").val();
    PostPrintReporte("Compras", contenido, fechaInicial, fechaFinal);
    //$("#iframeLoader").attr("src", "/ImpresionReporte.aspx?tipo=Compras&fechaInicial=" + fechaInicial + "&fechaFinal=" + fechaFinal + "&tablaReporte=" + contenido);
}
